package cn.edu.wynu.d12_api_object;

/**
 * 什么是API?
 * APl(Application Programminginterface):应用程序编程接口
 * 就是Java帮我们已经写好一些程序，如:类、方法等，我们直接拿过来用就可以解决一些问题。
 */

// Object类的作用：Object类是Java中所有类的祖宗类，因此，Java中所有类的对象都可以直接使用0bject类中提供的一些方法

/*
Object类的常见方法
      方法名                               说明
public String toString()          返回对象的字符串表示形式。
public boolean equals(Object o)   判断两个对象是否相等。
protected Object clone()          对象克隆

toString存在的意义:toString()方法存在的意义就是为了被子类重写，以便返回对象具体的内容。
equals存在的意义:直接比较两个对象的地址是否相同完全可以用“==”替代equals，equals存在的意义就是为了被子类重写，以便子类自己来定制比较规则(比如比较对象内容)。
*/

public class Test {
    public static void main(String[] args) {
        // 掌握Object类提供的常用方法：toString()、equals()、clone()
        Student s1 = new Student("张三", 18);
        // System.out.println(s1.toString());
        System.out.println(s1);

        Student s2 = new Student("张三", 18);
        // System.out.println(s2.equals(s1)); // false，默认比较的是地址值
        System.out.println(s2.equals(s1)); // true，重写了equals()方法，比较的是对象的内容
        System.out.println(s2 == s1); // false，默认比较的是地址值
    }
}
